vector differentiation